<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
  </head>

  <body>
    <script>
      // const obj = {
      //   a: 1
      // };
      // Object.preventExtensions(obj); // 可删除，可修改，不可扩展
      // Object.defineProperty(obj, 'a', {
      //   configurable: false,    // 不可删删除，就符合了seal
      //   writable: false,        // 不可修改。  就复合了freeze
      // })
      // console.log(Object.isFrozen(obj));
      // console.log(Object.isSealed(obj));
      // console.log(Object.isExtensible(obj))

      const obj = { a: 11, b: 22 };
      obj[Symbol.for("test")] = 33;

      console.log({ ...obj, a: "aaa" }); // 永远给出一个新的对象
      console.log(Object.assign(obj, { a: "bbbb" })); // 在第一对象上修改或添加属性
      console.log(obj);
    </script>
  </body>
</html>
